We were not properly converting the coordinates we
got to root coordinates. This was showing up as offsets
between the actual drop target and the area where drops
can happen, e.g. when dragging over a stack switcher
to switch pages.
precache_target_list (drag);
gdk_device_get_position (device, &px, &py);
- x_root = round (px) + dx;
- y_root = round (py) + dy;
+
+ gdk_x11_surface_get_root_coords (surface,
+ round (px) + dx,
+ round (py) + dy,
+ &x_root,
+ &y_root);
x11_drag->start_x = x_root;
x11_drag->start_y = y_root;